Version 1, more or less complete