add some speccing
more functions
spec stuff