added manual input, added rudimentary tests