uses p instead of puts