improve init