added intro and updated with methods