sometimes hackish, other times very much. But working (first step, check)