more features and tests