simplified handler structure