put everything together