merged introduction and refactoring branch

merged changes are currently working to my knowledge.