TODO
- warning about overriding/shadowing function by property
