refactored, tests broken
finished fixing and improving refactored tests