finished core and added specs