facet first implementation
docco docs.. not very good, but anyway