all functions implemented ok jason ur turn