First commit. Added framework and basic functionality