forked ideal_space to separate project