Improve properties interface and its implementation