removed precompile
cleaning up code
refactoring and cleaning up code