added readonly properties
added init code block