READ INSTRUCTIONS (below) ----------------------------------------------------------------------------
100% coding by me