code clean up
new classes