added everything I did earlier