done up to singleton?