write some specs, incase someone else wants to implement