Revamped Command to a interface rather than an object.