almost working init