refactoring finished, exceptions working, commands working, thomas now its your turn :D