pushing intermediate version, still preliminary