it probably helps to implement the correct init function