initial functionality finished