fleshing out core code/functionality