try to put things in depth order