start my own algorithm templates and take other's as reference:)