refactored and removed useless tests feels more complex now, but more stable