Implemented all features for version 1.