nice cleanup
solve bugs
cleanup