Updated project structure, added building using gulp and consolidated type and required checks