write ability spec for this