Ported to DartVoid's new app structure