- Use inline and crossinline for performance and reducing the number of methods. Thanks to @takahirom