fix makefile tabs
allow to constrict with a string
reduced unnecessary state
add some passing tests