init with default implemenation