add support for preferences