basic implementation of fields