added some class's and code cleanup
more work on a3