avoids duplicate levels problems outside the function
simple ageing & movement working
bunch of testing
tidying