first working commit. Needs argument error handling