Added some basic requirements and improvements