added goal amount check and implementation