This looks like a copy of contribution page.. and needs rework / cleanup