well thought out. everything you need