move action processing to Action.java