final commit, cleaned bugs, tested