Added basic interaction and error checking