added fields and constructor