continue implementing features and fix some bugs