basic requirements implemented