duck-type philosophy and added tests