Revise design

- Had a NullType, which is eliminated
- Added MigLayout files
- Classes had to many responsibilities
- Typechecking