fleshing out fucking functionality
adding fucking tests