блин, вроде подход такой серьёзный, но как то просто чертовски неаккуратно ...