add init function to interface