major overhaul for 0.3.0 candidate