better interface for providing properties