using faster
more clean up and refactoring