explained helpers and stuff