added Narcoleptic library and first pass at implementing it