added goal functionality