Add more documentation, and add partially implemented system