More features and unit testing