Refactor methods, add options