properties, getters, setters and proper tests