functionality working, needs more error checking and messages