updated features and separated writing tests from fixing features as a consequence of writing tests