Programming Assignment implementation