starting to write this how it should be
another structure change; for good