added method pattern (watch out as it's not very restrictive)