inital working version for review

@jarv @feanil 
if these args are required should an exception be raised here if they aren't passed in?