overhaul for 0.3