Initial commit - most necessary parts functional