skeleton code

have the base functionality in place