clarify with 'self', and code cleanup