added __inits__, tests, etc.