add new added new features and fix bugs
add new features, bug fixes and add documentation