Fleshed out spec based on readme