Seperating Spec from implementation