cleaned up requires