fleshing out functionality - still needs arguments handling