allow read-only access to properties
use methods not functions so we can override in tests
start adding tests for web kernel