added some small design drafts. Small amount of refactoring