putting all toghether