useful generic classes for small applications