moved file
cleanup, restructure and fix