use direct field access instead of setters