revise class, implement link and goal type