added the init method to allow overriding it in extending classes