all functions took their final form so we can now create the rest