more features implemented