added more specification logic

and reworked test methods