implement #17. add depth property