removed active record and specification pattern