finished rudimentary action implementation