maybe all these returned values (and others above) could be handled together using one or two classes...