updated with new features and library