reorder properties and methods
shorter implementation
use the set data method