Merged latest version from ellisonleao