initial implementation of solo